1. Field of the Invention
The present invention relates to data driven type information processing apparatus, and particularly to data driven type information processing apparatus in which a plurality of instructions are simultaneously driven.
2. Description of the Background Art
In a conventional Neumann type computer various instructions are previously stored as a program in a program memory, and the instructions are sequentially read by sequentially specifying addresses of the program memory by a program counter to execute the instructions.
On the other hand, the data driven type information processing apparatus is a kind of non-Neumann type computer having no concept of sequentially executing instructions by a program counter. In such a data driven type information processing apparatus, architecture based on parallel processes of instructions is introduced. In the data driven type information processing apparatus, execution of instructions are enabled just when data objective to the operation is prepared and a plurality of instructions are simultaneously driven with the data, so that the programs are executed in parallel according to the natural flow of the data. As a result, it is considered that the time period required for the operation is considerably reduced.
FIG. 35 is a block diagram showing one example of structure of a convention data driven type information processing apparatus. FIG. 36 is a diagram illustrating one example of a data flow program stored in a program storing unit in the data driven type information processing apparatus of FIG. 35. FIGS. 37A-37D are diagrams showing examples of field structure of data packets processed in the data driven type information processing apparatus of FIG. 35. Referring to FIGS. 35-37D, a conventional data driven type information processing apparatus will be described below.
A data packet as shown in FIG. 37A is externally supplied to an input unit 101. The data packet at least includes a node number and data as shown in FIG. 37A. The data included in the data packet is data to be processed, and the node number is data indicating at which node the data is to be processed. The data packet inputted from input unit 101 is supplied to a program storing unit 102. Program storing unit 102 stores such a data flow program as shown in FIG. 36. Each set of the data flow program is formed of a node number, an instruction code and a flag. Program storing unit 102 reads the node number, the instruction code and the flag at a predetermined set of the data flow program on addressing on the basis of the node number of the inputted data packet, stores them in a new data packet together with data included in the data packet inputted from input unit 101, and outputs that data packet, as shown in FIG. 36. FIG. 37B shows a data packet outputted from program storing unit 102.
Pair data detecting unit 103 performs queuing, or a firing process of the data packet outputted from program storing unit 102. That is, when an instruction code shows 2-input instruction, it detects different two data packets having the same node number, stores the data A and B included in these data packets in a single data packet as shown in FIG. 37C and outputs the data packet. Pair data detecting unit 103 intactly outputs an inputted data packet when an instruction code of the inputted data packet indicates an 1-input instruction.
An operation processing unit 104 performs an operation process based on an instruction code for a data packet outputted from pair data detecting unit 103, stores data C indicating the operation results in a data packet as shown in FIG. 37D and outputs the same.
An output unit 105 controls whether the data packet should be externally provided as an output or should be returned to input unit 101 to be circulated in the data driven type information processing apparatus again based on whether a flag included in the data packet received from operation processing unit 104 is set or not.
FIG. 38 is a diagram showing one example of a data flow graph. In FIG. 38, a node N1 indicates an addition instruction, a node N2 indicates a multiplication instruction and a node N3 indicates a subtraction instruction. A node N4 indicates a decrement instruction and a node N5 indicates an increment instruction. Instructions of nodes N1, N2, N3 are 2-input instructions and instructions of nodes N4, N5 are 1-input instructions. The operation result of the node N1 is referred to by nodes N2 and N3.
In a conventional data driven type information processing apparatus as described above, operation processing unit 104 had structure for executing only basic operations such as arithmetic operation, logical operation and the like. This is because, when implementing such complicated operations as requiring a large number of parameters by operation processing unit 104, parameters necessary for executing such operations have to be carried on data packets and transported, which requires extremely long data packets length, resulting in extremely large structure of apparatus. The operations requiring a large number of parameters most typically include operation for manipulation of structural data (e.g., a group of data configuring a single meaning with plural pieces of data such as a data group configuring a table) (the relation operation, the sorting operation, etc.).
As an example, how to attain a joint manipulation of structural data as shown in FIG. 39 in the conventional data driven type information processing apparatus shown in FIG. 35 will be described. The manipulation shown in FIG. 39 is manipulation for, when the second item of the structural data A and the first item of the structural data B agree, coupling the two to produce structural data C. A value of the first item of structural data A is introduced into the first item of structural data C, a value of the second item of structural data A is introduced in the second item of structural data C, and the second item of structural data B is introduced into the third item of structural data C.
FIG. 40 is a diagram showing operation steps necessary when attaining the manipulation of the structural data as shown in FIG. 39 with the conventional data driven type processing apparatus shown in FIG. 35. That is, in order to attain the operation as shown in FIG. 39 in a conventional data driven type information processing apparatus, it is necessary to analyze contents of the manipulation shown in FIG. 39 in detail to divide it into a plurality of basic operations and execute individual basic operation one by one to attain the process as shown in FIG. 39 in the entirety.
As described above, in a conventional data driven type information processing apparatus, for performing processes requiring a large number of parameters such as manipulation of structural data, for example, extremely large number of execution steps of basic operations are necessary, which leads to a problem of an inefficient utilization of the apparatus. Also, when producing a program, such complicated processes have to be partitioned into basic operations one by one to be described, resulting in a problem that program production requires high level skill and great labor.